Method for automatically configuring backup client systems and backup server systems in a backup environment

ABSTRACT

Automatically configuring backup client systems and backup server systems in a backup environment includes the following steps: determining if a new backup client system is available in the backup environment; in case of an available new backup client system a backup configuration module performs the sub-steps of: determining data types the new backup client system has to backup; determining corresponding backup policies for the determined data types based on a backup policy table mapping data types with backup policies; selecting a backup server system for the determined data types based on a backup server table including connection details of available backup server systems; configuring the determined backup policies for the data types of the new backup client system on the selected backup server systems; and updating the backup server table with an identifier of the new backup client system and an identifier of the backup policy.

BACKGROUND OF THE INVENTION

The present invention relates in general to the field of backupenvironments, and in particular to a method for automaticallyconfiguring backup client systems and backup server systems in a backupenvironment, and a corresponding backup environment comprising at leastone backup client system and at least one backup server system. Stillmore particularly, the present invention relates to a data processingprogram and a computer program product for automatically configuringbackup client systems and backup server systems in a backup environment.

In a typical backup environment, backup clients back up data fromrespective backup client systems to one or more backup server systems.During the backup process, the data from the backup clients is copied tobackup server systems. The backup server systems store the data inbackup storages according to backup policies configured for the backupclients in the backup server systems. Backup policies depend on the typeof the backup client. Backup clients each run on a server system. Theserver system, upon which the backup clients run, is called a “backupclient system.”

The type of backup client is given by the kind of data the backupclients back up. The type of backup client, or type of backup data,includes but is not limited to the following: operating system files;data base files and logs; emails from an email server; data fromresource planning system; virtual machine environments; and/or files ofany type. One backup client system can backup multiple types of data toone or more backup server systems. For example, a first backup clientrunning on a first backup client system can back up data of a first datatype to a first backup server system and data of a second data type to asecond backup server system.

Backup policies that are configured at the backup server systemsdetermine how the backup data is stored and managed over the lifecycleaccording to certain requirements. In a given backup environment thereis typically a backup policy for each data type handled by a backupclient. For example, the first data type is managed by the first backuppolicy, the second data type is managed by a second backup policy and athird data type is managed by a third backup policy, etc. Furthermore,there is typically one common backup policy for a given data type inenvironments where that given data type is backed up from multiplebackup clients. For example, in some conventional backup environments,data of the first type is present on two backup client systems and isbacked up to one backup server system managed by the first backuppolicy. In other conventional backup environments, the first backupclient system backs up data of the first data type to the first backupserver system managed by the first backup policy and the second backupclient system backs up data of the first data type to the second backupserver system.

One known challenge in a typical conventional backup environment is theproper configuration of the backup client systems based on their datatypes and backup policy in the backup server systems. The backup policytypically addresses and incorporates the requirements associated withthe backup of data of a certain data type. Each backup policy isconfigured at the backup server system and requires knowledge andexperience with the individual constructs that satisfy the backup policyfor the backup client system and its data types. Once a backup policy isdefined the backup client system must be associated with this backuppolicy in the backup server by assigning the server connectionproperties and credentials to the backup client system. This becomeseven more complex if a backup client system hosts multiple data typeswhich must be assigned to different backup policies in the backup serversystems. All these configuration steps are performed manually.

SUMMARY

According to an aspect of the present invention, there is a method forconfiguring backup client systems and backup server systems in a backupenvironment. The method includes the following steps (not necessarily inthe following order, and it is noted that steps may overlap in time):(i) determining whether a new backup client system is available in thebackup environment; and (ii) responsive to a determination that a newbackup client system is available, performing, by a backup configurationmodule, responsive actions including: (a) determining data types the newbackup client system has to backup, (b) determining corresponding backuppolicies for the determined data types based on a backup policy tablemapping data types with backup policies, (c) selecting a backup serversystem for the determined data types based on a backup server tableincluding connection details of available backup server systems, (d)configuring the determined backup policies for the data types of the newbackup client system on the selected backup server systems, and (e)updating the backup server table with an identifier of the new backupclient system and an identifier of the backup policy.

According to a further aspect of the present invention, there is abackup configuration module for use in a backup environment including aset of backup client system(s) and set of backup server system(s). Thebackup configuration module includes: (i) a backup policy table, in theform of machine readable code, mapping data types with backup policies;(ii) a backup server table, in the form of machine readable code,including connection details of available backup server systems; (iii) adetermination sub-module structured and/or programmed to determinewhether a new backup client system is available in the backupenvironment; and (iv) a responsive actions sub-module structured and/orprogrammed to responsive to a determination that a new backup clientsystem is available, performing the following responsive actions (notnecessarily in the following order): (a) determining data types the newbackup client system has to backup, (b) determining corresponding backuppolicies for the determined data types based on a backup policy tablemapping data types with backup policies, (c) selecting a backup serversystem for the determined data types based on a backup server tableincluding connection details of available backup server systems, (d)configuring the determined backup policies for the data types of the newbackup client system on the selected backup server systems, and (e)updating the backup server table with an identifier of the new backupclient system and an identifier of the backup policy.

According to a further aspect of the present invention, a computerprogram product stored on a computer-usable medium, includescomputer-readable program means for causing a computer to perform amethod for automatically configuring backup client systems and backupserver systems in a backup environment, the method including thefollowing steps (not necessarily in the following order and steps mayoverlap in time): (i) determining whether a new backup client system isavailable in the backup environment; and (ii) responsive to adetermination that a new backup client system is available, performing,by a backup configuration module, responsive actions including: (a)determining data types the new backup client system has to backup, (b)determining corresponding backup policies for the determined data typesbased on a backup policy table mapping data types with backup policies,(c) selecting a backup server system for the determined data types basedon a backup server table including connection details of availablebackup server systems, (d) configuring the determined backup policiesfor the data types of the new backup client system on the selectedbackup server systems, and (e) updating the backup server table with anidentifier of the new backup client system and an identifier of thebackup policy.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic block diagram of a backup environment, inaccordance with an embodiment of the present invention; and

FIG. 2 is a schematic flow diagram of a method for automaticallyconfiguring backup client systems and backup server systems in a backupenvironment, in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

Some embodiments of the present invention recognize that conventionalconfiguration for backing up data in conventional backup environment is:(i) time-consuming (because it is performed manually); (ii) error-prone(because it is performed manually); and/or (iii) difficult (because itcan be complex).

Some embodiments of the present invention may include one, or more, ofthe following characteristics, features and/or advantages: (i) provide amethod for automatically configuring backup client systems and backupserver systems in a backup environment; (ii) provide a backupenvironment that is able to use an appropriate backup policy accordingto the data types the client needs to backup; and/or (iii) to provide abackup environment that is less time-consuming, less error-prone and/orless difficult to use.

In an embodiment of the present invention a method for automaticallyconfiguring backup client systems and backup server systems in a backupenvironment includes the step of (i) determining if a new backup clientsystem is available in the backup environment; and (ii) in case of anavailable new backup client system a backup configuration moduleperforms the sub-steps of: (a) determining data types the new backupclient system has to backup, (b) determining corresponding backuppolicies for the determined data types based on a backup policy tablemapping data types with backup policies, (c) selecting a backup serversystem for the determined data types based on a backup server tableincluding connection details of available backup server systems, (d)configuring determined backup policies for the data types of the newbackup client system on the selected backup server systems, and (e)updating the backup server table with an identifier of the new backupclient system and an identifier of the backup policy.

In further embodiments of the present invention, the backupconfiguration module configures the new backup client system withconnecting information of the selected backup server systems includingat least one of the following information for each data type: connectiondetails, options and/or credentials.

In further embodiments of the present invention, at least one of thefollowing criteria of the backup server systems are used to select thebackup server system: available backup policy, number of configuredbackup client systems below a certain first threshold, number of backupclient systems using a corresponding backup policy above a certainsecond threshold, network connection information, available storagecapacity in a corresponding backup storage matching a required storagecapacity of the new backup client system, and/or data transfer rate.

In further embodiments of the present invention, the network connectioninformation is denoted by at least one of the following criteria: (i)shortest distance of the backup server system relative to the new backupclient system; and/or (ii) number and/or type of network interfacesbetween the backup server system and the new backup client system aresufficient to accommodate the backup of the data types.

In further embodiments of the present invention, the backupconfiguration module scans the backup environment to determine that thenew backup client system is available. The backup configuration modulemay use name and TCPIP (Transmission Control Protocol/Internet Protocol)filters to scan the backup environment, for example.

In some embodiments, the new backup client system registers at thebackup configuration module by sending an appropriate message to thebackup configuration module.

In further embodiments of the present invention, the backup policy tablecomprises at least two columns, wherein: (i) a first column denotes datatypes and a second column denotes backup policies; and (ii) the secondcolumn comprises at least one sub-column denoted with one of the flowingrequirements: (a) recovery point objective (RPO), (b) recovery timeobjective (RTO), (c) number of versions, (d) retention time, (e) backupwindow, (f) compression, and/or (g) policy name.

In further embodiments of the present invention, the backupconfiguration module tests the backup configuration by: (i) backing updata of each data type from the new backup client system; and (ii)determining if the data backed up is associated with an appropriatebackup server system and backup policy.

In another embodiment of the present invention, a backup environmentwith at least one backup client system and at least one backup serversystem comprises a backup configuration module implemented with a backuppolicy table mapping data types with backup policies and a backup servertable including connection details of available backup server systems.The backup configuration module is coupled to the at least one backupclient system and the at least one backup server system and performs theabove mentioned method for automatically configuring backup clientsystems and backup server systems in a backup environment according tothe present invention.

In further embodiments of the present invention, the backupconfiguration module includes a client configuration module capable tocommunicate with the backup client systems.

In further embodiments of the present invention, the clientconfiguration module is capable to configure a connection tocorresponding backup server systems in a backup client of the backupclient system.

In further embodiments of the present invention, the backupconfiguration module comprises a server configuration module capable tocommunicate with the backup server systems.

In further embodiments of the present invention, the serverconfiguration module is capable to configure backup policies in thebackup servers and to assign backup clients to the configured backuppolicies.

In another embodiment of the present invention, a data processingprogram for execution in a data processing system comprises softwarecode portions for performing a method for automatically configuringbackup client systems and backup server systems in a backup environmentwhen the program is run on the data processing system.

In yet another embodiment of the present invention, a computer programproduct stored on a computer-usable medium, comprises computer-readableprogram means for causing a computer to perform a method forautomatically configuring backup client systems and backup serversystems in a backup environment when the program is run on the computer.

Some embodiments of the present invention allow automating theconfiguration of backup policies on backup server systems and theconfiguration of the backup client systems to use the appropriate backuppolicies according to the data types the backup client needs to backup.

Furthermore, some embodiments of the present invention provide a way tobalance a plurality of backup client systems with different types ofdata on multiple backup server systems. It also allows simplifiedreporting by data type and/or by backup purpose (such as, daily backupfor recovery or long term backup according to regulations, for example,because of standard configuration templates according to the datatypes).

In some embodiments, the usage of standard backup policies per data typesimplifies the management of a backup solution.

Some embodiments of the present invention may include one, or more, ofthe following characteristics, features and/or advantages: (i)automatically detect new backup client systems; (ii) determine theirdata types; (iii) map the data types to backup policies; (iv) select theappropriate backup server system and/or; (v) configure the backuppolicies on the backup server systems and/or the backup client systemsaccordingly.

Some embodiments of the present invention implement a novel backupconfiguration module that is configured with a backup policy tableincluding the mapping of the data types with backup policies and abackup server table including the connection details of the availablebackup server systems. For example, the backup configuration moduledetermines that a new backup client system is available by scanning thenetwork and optionally using name and TCPIP filters. Alternatively thebackup client systems register with the backup configuration module bysending an appropriate message over the network to the backupconfiguration module. The determination of the data types the backupclient systems wants to backup may be done by the backup client systemitself. In this case the backup client system scans itself and informsthe backup configuration module about the data types found during thescan. Alternatively, the backup configuration module scans the backupclient system and determines the data types. For example, the scanningprocess executed by the backup client system or the backup configurationmodule determines applications installed and data stored on the backupclient system in order to determine the data type of the correspondingbackup client system.

Some embodiments of the present invention select the backup serversystems based on selection criteria which may include one or more of thefollowing: backup policies, number of clients, quality of networkconnections, distance between backup client system and backup serversystem, storage capacity, storage throughput, etc.

In some embodiments, backup policies that are configured at the backupserver systems determine how the backup data is stored and managed overthe lifecycle according to certain requirements. In some embodiments, abackup policy includes one, or more, of the following requirements:recovery time, recovery point, versioning, retention periods, backupwindow, space efficiency, and/or data volume. The recovery time definesduration of recovery process for a certain volume of data. The recoverypoint defines time period intervals for backup. Versioning defines howmany versions to keep. The retention periods define how long to keepinactive versions of data. The backup window defines the maximum runtimeof the backup for a certain volume of data. The space efficiency definescompression requirements for data. The data volume defines how much datais backed up every day in average.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

Referring to FIG. 1, the shown embodiment of the present inventionemploys a backup environment 100 comprising at least one backup clientsystem 110A, 110B, 110C, at least one backup server system 120A, 120Band a backup configuration module 130 implemented with a backup policytable 132 mapping data types 112, 114, 116 with backup policies 122,124, 126 and a backup server table 134 including connection details ofavailable backup server systems 120A, 120B. The backup configurationmodule 130 is coupled to the at least one backup client system 110A,110B, 110C and the at least one backup server system 120A, 120B vianetwork 140.

In the shown embodiment the backup environment 100 comprises a firstbackup client system 110A with a first backup client 118A installed,hosting data of a first data type 112 and data of a second data type114, a second backup client system 110B with a second backup client 118Binstalled, hosting data of the first data type 112, and a third backupclient system 110C with a third backup client 118C installed, hostingdata of the second data type 114 and data of a third data type 116.Further the backup environment 100 comprises a first backup serversystem 120A with a first backup storage 128A and a configured firstbackup policy 122, a configured second backup policy 124 and aconfigured third backup policy 126, and a second backup server system120B with a second backup storage 128B and the configured first backuppolicy 122, and the configured third backup policy 126.

Still referring to FIG. 1, the backup configuration module 130 comprisesthe backup policy table 132 that maps the data types 112, 114, 116 tothe according backup policies 122, 124, 126 in the backup server systems120A, 120B. Furthermore the backup configuration module 130 comprisesthe backup server table 134 which includes the connection details forthe backup server systems 120A, 120B and information about theconfigured backup policies 122, 124, 126 and the number of backup clientsystems 110A, 110B, 110C using these backup policies 122, 124, 126. Inaddition the backup configuration module 130 includes a clientconfiguration module 136 that is capable to communicate with the backupclient systems 110A, 110B, 110C and to configure the connection to thebackup server system 120A, 120B in the respective backup client 118A,118B, 118C. The backup configuration module 130 also includes a serverconfiguration module 138 that is capable to communicate with the backupserver systems 120A, 120B and to configure backup policies 122, 124, 126and to assign backup client systems 110A, 110B, 110C to the configuredbackup policies 122, 124, 126.

The structure of the backup policy table 132 according to the backupconfiguration module 130 is shown below as Table 1 with some examples:

Backup Policy Data Com- Policy Type RPO RTO Version Retention Windowpression Name 112 12 h 24 h 3 30 days 4 h no 122 114  2 h 12 h 2 60 days2 h yes 124 116 24 h 48 h 1 10 days 6 h no 126

Referring to row 3 of Table 1, the backup policy for data of the firstdata type 112 (row 3, column 1) are configured to achieve a recoverypoint objective (RPO) of 12 h (row 3, column 2). This can be achieved bybacking up the data according to the first data type 112 every n hours,with n=12 hours.

The recovery time objective (RTO) (row 3, column 3) is 24 h, which meansthe data of the first data type 112 are stored on a backup server system120A, 120B providing a backup storage 128A, 128B, which allows restoringdata within 24 hours.

The number of versions (row 3, column 4) for this data type is 3, whichmeans that 3 version of this data are kept. The retention time forexpired versions (row 3, column 5) is 30 days. The backup window for thefirst data type 112 (row 3, column 6) is 4 hours, which means that abackup is completed in 4 hours. This essentially defines the throughputrequirements for the backup storage 128A, 128B in the backup serversystems 120A, 120B. The data of the first data type 112 are notcompressed according to row 3 and column 7. The name of the first policyis 122 according to row 3 and column 8.

The structure of the backup server table 134 according to the backupconfiguration module 130 is shown below as Table 2 (which is broken intoportion 1 (with columns 1 to 4), and portion 2 (with columns 5 to 10))with some examples:

Backup Number of Server Connection policy clients (col. 1) (col. 2)(col. 3) (col. 4) 120A Server1.com:1500:credentials 122 4 120AServer1.com:1500:credentials 124 1 120B Server2.com:1501:credentials 1241 120B Server2.com:1501:credentials 126 3

Free Network Network Space in Restore Interfaces Interfaces StoragePerfor- Subnet 1 Gbit/s 10 Gbit/s Pool IOPS mance (col. 5) (col. 6)(col. 7) (col. 8) (col. 9) (col. 10) 192.168.1.0/24 6 0 15 TB 20K 10GB/h 192.168.1.0/24 6 0 15 TB 20K 10 GB/h 192.168.2.0/24 0 4 30 TB 50K20 GB/h 192.168.2.0/24 0 4 30 TB 50K 20 GB/h

Referring to row 2 of Table 2, the first backup server system 120A (row2, column 1) can be reached over the network 140 as server1.com on port1500 with the credentials according to row 2, column 2. The first backupserver system 120A has configured the first backup policy 122 accordingto row 2 and column 3. The number of backup client systems 110A, 110B,110C associated with the first backup server system 120A and the firstbackup policy 122 is 4 according to row 2 and column 4. The first backupserver system 120A is located in the subnet 192.168.1.0/24 (row 2,column 5) and has 6 network interfaces with the speed of 1 Gbit/s (row2, column 6) but no 10 Gbit/s network interface (row 2, column 7). Thefirst backup server system 120A has 15 TB available in the backupstorage 128A according to row 2 and column 8. The first backup serversystem 120A handles 20.000 input/output operations per second (IOPS)according to row 2 and column 9. The first backup server system 120A canrestore with 10 GB per hour according to row 2 and column 10.

The client configuration module 136 has knowledge about the backupvolume and client network configuration. The RTO can be derived from thedata type 112, 114, 116 of the backup client system 110A, 110B, 110Cusing the backup policy table 132 (Table 1, column 1 and 3). Based onthe information provided in the backup server table 134 about the servernetwork characteristics, the size of the available storage in the backupstorage 128A, 128B, and the restore performance backup server system120A, 120B, the backup server system for a new backup client, isselected as explained below in detail.

Referring to FIG. 2, the shown embodiment of the present inventionemploys a method for automatically configuring backup client systems andbackup server systems in a backup environment. The backup configurationmodule 130 is configured for automatically configuring backup policies122, 124, 126 in backup server systems 120A, 120B and assigning backupclient systems 110A, 110B, 110C based on their data type 112, 114, 116.The process starts in step S200 where the backup configuration module130 determines that a new backup client 118A, 118B, 118C running on abackup client system 110A, 110B, 110C is available using the clientconfiguration module 136. This determination can be based on periodicnetwork scans. These network scans can incorporate network filters toonly scan relevant portions of the network 140. In an alternativeembodiment a new backup client 118A, 118B, 118C sends a message by meansof network messaging (e.g. broadcasting) to the backup configurationmodule 130. Responsive to this the backup configuration module 130determines in step S210 that a new backup client 118A, 118B, 118C ispresent. In another embodiment the backup configuration module 130 scansthe existing backup client systems 110A, 110B, 110C to detect systemswhich do not have yet a backup client 118A, 118B, 118C installed at alland installs the backup client 118A, 118B, 118C on such a backup clientsystem 110A, 110B, 110C, unless the backup client system 110A, 110B,110C is on an exclude list, for example, because it is a test server.

When a new backup client has been detected in steps S200 and S210 by thebackup configuration module 130, the backup configuration module 130determines the data types 112, 114, 116 hosted by the correspondingbackup client system 110A, 110B, 110C in step S220. The determination ofthe data types 112, 114, 116 can be implemented by software and filesystem scans on the backup client systems 110A, 110B, 110C initiated andcontrolled by the backup configuration module 130. In an alternateembodiment the backup client systems 110A, 110B, 110C perform a scan forinstalled software and file systems and send this information to thebackup configuration module 130 by means of network messaging.

In step S230 the backup configuration module 130 determines the backuppolicy 122, 124, 126 for each data type 112, 114, 116 by consulting thebackup policy table 132 and matching columns 1 and 8. For example thefirst data type 112 (row 3, column 1) is mapped to the first backuppolicy 122 (row 3, column 8) according to the backup policy table 132.

In step S240 the backup configuration module 130 selects the backupserver system 120A, 120B for each data type 112, 114, 116 by consultingthe backup server table 134. In the shown embodiment the backupconfiguration module 130 selects one of the backup server systems 120A,120B that has the configured backup policy 122, 124, 126 by matchingcolumn 3 of Table 2 with the backup policy 122, 124, 126 determined inthe step S230. Further the backup configuration module 130 determines ifthe number of backup client systems 110A, 110B, 110C (column 4 of Table2) using the backup policy 122, 124, 126 determined in step S230 in theselected backup server system 120A, 120B is below a certain firstthreshold.

If the number of backup client systems 110A, 110B, 110C is below thefirst threshold the backup configuration module 130 assigns the backupclient system 110A, 110B, 110C to the backup policy 122, 124, 126 in theselected backup server system 120A, 120B using the server configurationmodule 138 and the server connection from backup server table 134 column2. Assigning the backup client system 110A, 110B, 110C to the backuppolicy 122, 124, 126 in the backup server system 120A, 120B involvessetting up credentials for this backup client system 110A, 110B, 110C.

If the number of backup client systems 110A, 110B, 110C is above thefirst threshold the backup configuration module 130 determines if thereis another backup server system 120A, 120B available matching the backuppolicy 122, 124, 126 determined in step S230. If there is another backupserver system 120A, 120B available the backup configuration module 130proofs if the number of client systems 110A, 110B, 110C of this backupserver system 120A, 120B is below the first threshold and so on.

If there is no other backup server system 120A, 120B available using thebackup policy 122, 124, 126 determined in step S230 the backupconfiguration module 130 selects a new backup server system 120A, 120B.

In one embodiment of the present invention the backup server system120A, 120B with the lowest number of configured backup client systems110A, 110B, 110C according to backup server table 134 (Table 2, column4), is selected as new backup server system, thus potentially the backupserver system with the least workload is selected.

In another embodiment the backup server system 120A, 120B that providesthe best network connection to the new backup client system 110A, 110B,110C detected in steps S200 and S210 is selected as new backup serversystem using columns 6 and 7 of backup server table 134 (Table 2). Thebest network connection is denoted by the number of network interfacesthe backup server system 120A, 120B has, the distance to the backupclient system 110A, 110B, 110C and the type of network connection (1Gbit, 10 Gbit).

In yet another embodiment the backup server system 120A, 120B with thelargest free capacity in the backup storage 128A, 128B is selected asnew backup server system using column 8 of backup server table 134(Table 2).

In another embodiment the backup server system 120A, 120B that providesthe backup storage 128A, 128B that can meet the required I/O operationsper second is selected as new backup server system using column 9 of thebackup server table 134 (Table 2). The required I/O operations persecond can be derived from the required backup window in backup policytable 132, column 6.

In another embodiment the backup server system 120A, 120B is selected bycomparing the backup size detected by the backup client 118A, 118B, 118Cand the RTO given in the backup policy table 132 column 3 with therestore performance given in the backup server table 134 (Table 2,column 10).

In another embodiment some or even all criteria are used for selecting abackup server system 120A, 120B by assigning a score to each backupserver system 120A, 120B. The backup server system 120A, 120B with themost points gets the backup client system 110A, 110B, 110C assigned to.If a predefined minimum score is not achieved by any of the backupserver systems 120A, 120B a new backup server system 120A, 120B isselected.

In step S250 the backup configuration module 130 configures the backuppolicy 122, 124, 126 determined in step S230 according to the data type112, 114, 116 determined in step S220 in the selected backup serversystem 120A, 120B, using the server configuration module 138 and thebackup server system connection from backup server table 134 column 2.Further the new backup client system 110A, 110B, 110C determined insteps S200 and S210 is assigned to the configured backup policy 122,124, 126, using the server configuration module 138 and the backupserver system connection from backup server table 134 column 2.Assigning the backup client system 110A, 110B, 110C to the backup policy122, 124, 126 in the backup server system 120A, 120B involves setting upcredentials for this backup client system 110A, 110B, 110C.

In step S260 the backup configuration module 130 updates the backupserver table 134 with the data type (column 1), backup policy (column 3)and number of clients (column 4) based on the client assignment.

Additionally, the backup configuration module 130 configures the newbackup client system 110A, 110B, 110C in step S270 with connectinginformation of the selected backup server systems 120A, 120B and thecredential and other options from the backup policy, for examplecompression in column 7 of Table 1, by using the server connectiondetails from backup server table 134 (Table 2, column 2) and the clientconfiguration module 136.

According to an optional step S280 the backup configuration module 130tests the backup configuration of the new backup client system 110A,110B, 110C by backing up data of each data type 112, 114, 116 from thenew backup client system 110A, 110B, 110C and determining if the databacked up is associated with an appropriate backup server system 120A,120B and backup policy 122, 124, 126.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

The following paragraphs set forth some definitions for certain words orterms for purposes of understanding and/or interpreting this document.

Present invention: should not be taken as an absolute indication thatthe subject matter described by the term “present invention” is coveredby either the claims as they are filed, or by the claims that mayeventually issue after patent prosecution; while the term “presentinvention” is used to help the reader to get a general feel for whichdisclosures herein are believed to potentially be new, thisunderstanding, as indicated by use of the term “present invention,” istentative and provisional and subject to change over the course ofpatent prosecution as relevant information is developed and as theclaims are potentially amended.

Embodiment: see definition of “present invention” above—similar cautionsapply to the term “embodiment.”

and/or: inclusive or; for example, A, B “and/or” C means that at leastone of A or B or C is true and applicable.

Without substantial human intervention: a process that occursautomatically (often by operation of machine logic, such as software)with little or no human input; some examples that involve “nosubstantial human intervention” include: (i) computer is performingcomplex processing and a human switches the computer to an alternativepower supply due to an outage of grid power so that processing continuesuninterrupted; (ii) computer is about to perform resource intensiveprocessing, and human confirms that the resource-intensive processingshould indeed be undertaken (in this case, the process of confirmation,considered in isolation, is with substantial human intervention, but theresource intensive processing does not include any substantial humanintervention, notwithstanding the simple yes-no style confirmationrequired to be made by a human); and (iii) using machine logic, acomputer has made a weighty decision (for example, a decision to groundall airplanes in anticipation of bad weather), but, before implementingthe weighty decision the computer must obtain simple yes-no styleconfirmation from a human source.

Automatically: without any human intervention.

Module/Sub-Module: any set of hardware, firmware and/or software thatoperatively works to do some kind of function, without regard to whetherthe module is: (i) in a single local proximity; (ii) distributed over awide area; (iii) in a single proximity within a larger piece of softwarecode; (iv) located within a single piece of software code; (v) locatedin a single storage device, memory or medium; (vi) mechanicallyconnected; (vii) electrically connected; and/or (viii) connected in datacommunication.

Computer: any device with significant data processing and/or machinereadable instruction reading capabilities including, but not limited to:desktop computers, mainframe computers, laptop computers,field-programmable gate array (FPGA) based devices, smart phones,personal digital assistants (PDAs), body-mounted or inserted computers,embedded device style computers, application-specific integrated circuit(ASIC) based devices.

What is claimed is:
 1. A method for configuring backup client systemsand backup server systems in a backup environment, the method comprisesthe steps of: determining whether a new backup client system isavailable in the backup environment; and responsive to a determinationthat a new backup client system is available, performing, by a backupconfiguration module, responsive actions including: determining datatypes the new backup client system has to backup, determiningcorresponding backup policies for the determined data types based on abackup policy table mapping data types with backup policies, selecting abackup server system for the determined data types based on a backupserver table including connection details of available backup serversystems, configuring the determined backup policies for the data typesof the new backup client system on the selected backup server systems,and updating the backup server table with an identifier of the newbackup client system and an identifier of the backup policy.
 2. Themethod according to claim 1, wherein the backup configuration moduleconfigures the new backup client system with connecting information ofthe selected backup server systems, with the connecting informationincluding at least one of the following information for each data type:connection details, options and credentials.
 3. The method according toclaim 1, wherein at least one of the following criteria of the backupserver systems are used to select the backup server system: (i)available backup policy, (ii) number of configured backup client systemsbelow a predetermined first threshold, (iii) number of backup clientsystems using a corresponding backup policy above a predetermined secondthreshold, (iv) network connection information and/or available storagecapacity in a corresponding backup storage matching a required storagecapacity of the new backup client system, and (v) data transfer rate. 4.The method according to claim 3, wherein the network connectioninformation is denoted by at least one of the following criteria: (i)shortest distance of the backup server system relative to the new backupclient system, and (ii) number and type of network interfaces betweenthe backup server system and the new backup client system are sufficientto accommodate the backup of the data types.
 5. The method according toclaim 1, further comprising: scanning, by the backup configurationmodule, the backup environment to determine that the new backup clientsystem is available by using name and TCP/IP (transmission controlprotocol/internet protocol) filters to scan the backup environment. 6.The method according to claim 1 further comprising: registering, by thenew backup client system, at the backup configuration module by sendingan appropriate message to the backup configuration module.
 7. The methodaccording to claim 1 wherein: the backup policy table includes at leasta first column and a second column; the first column denotes data types;the second column denotes backup policies; and the second columnincludes at least one sub-column denoted with one of the flowingrequirements: recovery point objective (RPO), recovery time objective(RTO), number of versions, retention time, backup window, compression,and policy name.
 8. The method according to claim 1 further comprising:testing, by the backup configuration module, the backup configuration bybacking up data of each data type from the new backup client system anddetermining if the data backed up is associated with an appropriatebackup server system and backup policy.
 9. A backup configuration modulefor use in a backup environment including a set of backup clientsystem(s) and set of backup server system(s), the backup configurationmodule comprising: a backup policy table, in the form of machinereadable code, mapping data types with backup policies; a backup servertable, in the form of machine readable code, including connectiondetails of available backup server systems; a determination sub-modulestructured and/or programmed to determine whether a new backup clientsystem is available in the backup environment; a responsive actionssub-module structured and/or programmed to responsive to a determinationthat a new backup client system is available, performing the followingresponsive actions: determining data types the new backup client systemhas to backup, determining corresponding backup policies for thedetermined data types based on a backup policy table mapping data typeswith backup policies, selecting a backup server system for thedetermined data types based on a backup server table includingconnection details of available backup server systems, configuring thedetermined backup policies for the data types of the new backup clientsystem on the selected backup server systems, and updating the backupserver table with an identifier of the new backup client system and anidentifier of the backup policy.
 10. The backup configuration module ofclaim 9 further comprising: a client configuration module structuredand/or programmed to communicate with the backup client system(s). 11.The backup configuration module according to claim 10 wherein the clientconfiguration module (136) is further structured and/or programmed toconfigure a connection to corresponding backup server systems in abackup client of a backup client system of the set of backup clientsystem(s).
 12. The backup configuration module of claim 9 furthercomprising: a server configuration module structured and/or programmedto communicate with the backup server system(s).
 13. The backupconfiguration module of claim 12 wherein the server configuration moduleis further structured and/or programmed to configure backup policies inthe backup servers and to assign backup clients to the configured backuppolicies.
 14. A computer program product stored on a computer-usablemedium, comprising computer-readable program means for causing acomputer to perform a method for automatically configuring backup clientsystems and backup server systems in a backup environment when theprogram is run on the computer, the method including: determiningwhether a new backup client system is available in the backupenvironment; and responsive to a determination that a new backup clientsystem is available, performing, by a backup configuration module,responsive actions including: determining data types the new backupclient system has to backup, determining corresponding backup policiesfor the determined data types based on a backup policy table mappingdata types with backup policies, selecting a backup server system forthe determined data types based on a backup server table includingconnection details of available backup server systems, configuring thedetermined backup policies for the data types of the new backup clientsystem on the selected backup server systems, and updating the backupserver table with an identifier of the new backup client system and anidentifier of the backup policy.